48 - 10.4.7 Kreiseln: Zusammenfassung [ID:25767]
50 von 78 angezeigt

Ja, kommen wir zur Zusammenfassung. Resümee des Stoffes von heute. Nun, wir haben im wesentlichen

im ersten Teil der Veranstaltung das Konzept der Umlaufsperre kennengelernt und da gesehen,

dass es eine weitere Alternative ist, wie man wechselseitigen Ausschluss im Vergleich zum

Semmler vor, im Vergleich zum Monitor, softe gesteuert realisieren kann. Das ist ein pessimistischer

Ansatz, wie man schon so schön sagt. Jegliche Form der blockierenden Synchronisation fällt in

diese Kategorie. Das ist in der Umsetzung relativ leicht, wenn man mal von diesen Sperrprotokollen

denn halt absieht, aber der Code, den man schützt, der so häufig eben rein sequenzieller Code im

Ursprung ist, der bleibt mehr oder weniger erhalten und insofern ist dann praktisch die Anwendung

eines solchen Synchronisations Konzepts denn vergleichsweise leicht, sofern es um den Software

Entwicklungsaufwand geht. Der Problem dieses Ansatzes ist und zwar der Umlaufsperren, ist die

Störanfälligkeit, wenn wir einen hohen Wettstreit haben und da haben wir dann eben auch diskutiert,

wie dort der Zusammenhang zu den Caches zum Beispiel existiert oder etwa dieser sogenannte

Buzz Lock Barres, der aufgrund dieser atomaren Operation, atomare Rhythmo, die 5-rei zyklen

bestimmte Operationen sehr häufig mit einer hohen Frequenz möglicherweise wirksam wird und deshalb

eben auch zu großen Interferenzen führen kann, die denn einfach Prozesse, die hier mit so einem

wechselseitigen Ausschluss überhaupt gar nicht beteiligt sind, dennoch beeinträchtigen innerhalb

des Rechensystems. Und so ist man denn zu solchen Backoff-Techniken gekommen, wo man dann

Zurückhaltung ausübt, bevor man dann wiederholt versucht eben so eine atomare Operation für so

einen Sperrversuch denn zur Ausführung zu bringen. Das hat dann zu unterschiedlichen Verweilzeiten

geführt, um dann praktisch diese Konflikte bei diesen Wiederholungen denn irgendwie ein

bisschen zu vermeiden. Komplett ausschließen kann man sie nicht, aber man kann natürlich

denn schon etwas dazu beitragen, dass denn diese Störanfälligkeit nicht zu stark wird. Nun ein

Grundproblem bei allen blockierenden Synchronisationsverfahren, nicht nur hier bei der Umlaufsperre, ist eben die

hohe Verklemmungsgefahr einfach deshalb, weil man ja eine blockierende Synchronisationstechnik verwendet.

Das heißt Prozesse blockieren wirklich und müssen darauf warten, dass sozusagen eine Sperre freigegeben

wird oder dass ein kritischer Abschnitt eben frei geht, in den sie eintreten wollen, bevor sie

denn weiter vorankommen können. Wir werden in der nächsten Vorlesung diesen Aspekt gesondert

betrachten. Das ist ein großes Problem und man muss da halt eben auch entsprechende Lösungen

dann präsentieren, die dann einfach verhindern, dass so eine Verklemmungssituation nicht dazu

führt, dass das gesamte System möglicherweise nicht mehr weiter arbeiten kann. Ein anderer Aspekt ist

die nicht blockierende Synchronisation, ist einfach der Gegensatz denn wirklich dazu, wo man zwar

wechselseitigen Ausschluss verwendet, aber dieser denn halt nur noch in den einzelnen Maschinenbefehlen,

die man für die Synchronisationstechniken denn verwendet, gegeben ist. Hier noch mal zur Erwähnung

dieser wechselseitige Ausschluss, die man hier verwendet in den Maschinenbefehl, der gilt natürlich

auch bei der blockierenden Synchronisation. Es geht ja hier darum, dass man spezielle Maschinenbefehle

halt hat, die dann atomar ausgelegt sind, sodass dann jegliche Form von Synchronisationstechnik auf

den höheren Ebenen, auf der Software-Ebene im Endeffekt dann funktioniert und das gilt natürlich

auch für die nicht blockierende. Hier ist der Ansatz ein optimistisches Herangehen, wo man

denn eben eine positive Erwartung halt hat und davon ausgeht oder zumindest annimmt, dass es nicht

zu viele gleichzeitig Prozesse gibt, die einen Konflikt an einem kritischen Abschnitt oder

bezüglich einer gemeinsamen Variable sozusagen denn hervorrufen würden. Der algorithmische An-

um die algorithmische Umsetzung ist schon komplizierter, auch wenn die Beispiele,

die wir gesehen haben, nicht allzu komplex sind und durchaus halt keinen sehr großen Unterschied

zu der blockierenden Technik dargestellt haben, ist die Realität schon eine andere, wenn man denn

komplexere Datenstrukturen halt hat und die verarbeiten möchte, die synchronisieren möchte,

denn ist so eine nicht blockierende Technik ungleich komplizierter im Vergleich zu der

blockierenden Technik. Das ist so ein Hauptaspekt, das heißt also hier geht es im Wesentlichen um

die Entwicklungszeit, die man spendieren muss, um dann halt eine entsprechende funktionierende

Lösung dann herbeiführen zu können und insofern ist denn dieser Ansatz durchaus schwerer umzusetzen

als etwa die blockierende Technik. Der große Vorteil ist, diese Synchronisationstechnik ist

Teil eines Kapitels:
10.4 Kreiseln

Zugänglich über

Offener Zugang

Dauer

00:08:46 Min

Aufnahmedatum

2020-12-04

Hochgeladen am

2020-12-05 00:39:40

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen